package com.example.excel_db.validator;

import java.util.List;
import java.util.Map;

/**
 * Excel数据校验器接口
 * 用于校验Excel导入的数据
 */
public interface ExcelDataValidator {

    /**
     * 校验单行数据
     *
     * @param rowData 行数据，键为字段名，值为字段值
     * @param rowIndex 行索引（从0开始）
     * @return 校验错误信息列表，如果没有错误则返回空列表
     */
    List<String> validateRow(Map<String, Object> rowData, int rowIndex);
    
    /**
     * 批量校验多行数据
     *
     * @param dataList 数据列表，每个元素为一行数据
     * @return 校验错误信息映射，键为行索引，值为该行的错误信息列表
     */
    Map<Integer, List<String>> validateBatch(List<Map<String, Object>> dataList);
    
    /**
     * 获取校验器名称
     *
     * @return 校验器名称
     */
    String getName();
}